/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.db.explorer.actions;
import java.util.Vector;
import java.text.MessageFormat;
import java.util.ResourceBundle;
import org.openide.TopManager;
import org.openide.NotifyDescriptor;
import org.openide.nodes.*;
import org.openide.util.NbBundle;
import org.netbeans.lib.ddl.*;
import org.netbeans.modules.db.explorer.*;
import org.netbeans.modules.db.explorer.infos.*;
import org.netbeans.modules.db.explorer.nodes.RootNode;
import org.netbeans.modules.db.explorer.actions.DatabaseAction;
import org.netbeans.modules.db.explorer.dlg.NewConnectionDialog;
public class ConnectUsingDriverAction extends DatabaseAction
{
private final static String CLASS_NOT_FOUND = "EXC_ClassNotFound";
private final static String BUNDLE_PATH = "org.netbeans.modules.db.resources.Bundle";
static final long serialVersionUID =8245005834483564671L;
public void performAction(Node[] activatedNodes)
{
Node node;
if (activatedNodes != null && activatedNodes.length>0) node = activatedNodes[0];
else return;
try {
DriverNodeInfo info = (DriverNodeInfo)node.getCookie(DatabaseNodeInfo.class);
ConnectionOwnerOperations nfo = (ConnectionOwnerOperations)info.getParent(nodename);
Vector drvs = RootNode.getOption().getAvailableDrivers();
DatabaseConnection cinfo = new DatabaseConnection();
cinfo.setDriverName(info.getName());
cinfo.setDriver(info.getURL());
NewConnectionDialog cdlg = new NewConnectionDialog(drvs, cinfo);
if (cdlg.run()) nfo.addConnection((DBConnection)cinfo);
} catch (ClassNotFoundException ex) {
String message = MessageFormat.format(NbBundle.getBundle(BUNDLE_PATH).getString(CLASS_NOT_FOUND), new String[] {ex.getMessage()});
TopManager.getDefault().notify(new NotifyDescriptor.Message(message, NotifyDescriptor.ERROR_MESSAGE));
} catch(Exception e) {
TopManager.getDefault().notify(new NotifyDescriptor.Message("Unable to add connection, "+e.getMessage(), NotifyDescriptor.ERROR_MESSAGE));
}
}
}
/*
* <<Log>>
* 9 Gandalf 1.8 11/27/99 Patrik Knakal
* 8 Gandalf 1.7 10/23/99 Ian Formanek NO SEMANTIC CHANGE - Sun
* Microsystems Copyright in File Comment
* 7 Gandalf 1.6 9/8/99 Slavek Psenicka adaptor changes
* 6 Gandalf 1.5 7/21/99 Slavek Psenicka preset values
* 5 Gandalf 1.4 6/9/99 Ian Formanek ---- Package Change To
* org.openide ----
* 4 Gandalf 1.3 5/21/99 Slavek Psenicka new version
* 3 Gandalf 1.2 5/14/99 Slavek Psenicka new version
* 2 Gandalf 1.1 4/23/99 Slavek Psenicka oprava activatedNode[0]
* check
* 1 Gandalf 1.0 4/23/99 Slavek Psenicka
* $
*/